import 'package:equatable/equatable.dart';
import 'package:mobile_app.core/core/domain/entities/primary_color.dart';
import 'package:mobile_app.core/core/domain/entities/theme_mode.dart';

class AppearanceSettingsData extends Equatable {
  const AppearanceSettingsData({
    required this.themeMode,
    required this.lightThemePrimaryColor,
    required this.darkThemePrimaryColor,
  });

  final ThemeMode themeMode;
  final LightThemePrimaryColor lightThemePrimaryColor;
  final DarkThemePrimaryColor darkThemePrimaryColor;

  @override
  List<Object?> get props {
    return [
      themeMode,
      lightThemePrimaryColor,
      darkThemePrimaryColor,
    ];
  }

  AppearanceSettingsData copyWith({
    ThemeMode Function()? themeMode,
    LightThemePrimaryColor Function()? lightThemePrimaryColor,
    DarkThemePrimaryColor Function()? darkThemePrimaryColor,
  }) {
    return AppearanceSettingsData(
      themeMode: themeMode == null ? this.themeMode : themeMode(),
      lightThemePrimaryColor:
          lightThemePrimaryColor == null ? this.lightThemePrimaryColor : lightThemePrimaryColor(),
      darkThemePrimaryColor:
          darkThemePrimaryColor == null ? this.darkThemePrimaryColor : darkThemePrimaryColor(),
    );
  }
}
